
export class JsonUtil{

  /**
   * 检查JSON字符串是否为空
   */
  public static isEmptyJson(jsonStr: string): boolean {
    if (!jsonStr) {
      return true;
    }

    // 去除空格
    const trimmed = jsonStr.trim();

    // 检查是否为空对象字符串
    if (trimmed === '{}' || trimmed === '[]') {
      return true;
    }

    try {
      const obj = JSON.parse(trimmed);
      // 检查解析后的对象是否为空
      return (
        obj === null ||
          obj === undefined ||
          (Array.isArray(obj) && obj.length === 0) ||
          (typeof obj === 'object' && Object.keys(obj).length === 0)
      );
    } catch (error) {
      console.error('JSON parse error:', error);
      return true;
    }
  }


  /**
   * 解析json字符串
   */
  public static parseJson(jsonStr: string): object | null {

    if (this.isEmptyJson(jsonStr)) {
      return null;
    }

    try {
      return JSON.parse(jsonStr);
    } catch (error) {
      console.error('jsonStr parse error :', error);
      return null;
    }

  }


  /**
   * 解析json any
   */
  public static stringifyJson(json: any): string | null {
    try {
      return JSON.stringify(json);
    } catch (error) {
      console.error('jsonStr stringify error :', error);
      return null;
    }

  }
}